﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EntityComponentSystem.Framework
{
    public interface ISystem
    {
        string Name { get; }
        void Update(GameEngine ge);
        void Init(GameEngine ge);
    }

    public interface IBehaviorSystem : ISystem
    {
        void AddBehavior(int entity, Behavior behavior, Action action);
        void RemoveBehavior(int entity, Behavior behavior);
    }

    public interface IEntitySystem : ISystem
    {
        void AddEntity(int entity);
        void RemoveEntity(int entity);
    }

    public interface IAutoSystem : IEntitySystem
    {
        string[] AutoMappedComponents { get; }
    }

}
